package day38;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

public class HashMapTest implements Serializable {
    private static final long serialVersionUID=1L;
    public static void main(String[] args) {
        //实例化对象，得到了加载因子，没有初始化容量
        //第一次put的时候，才会扩容
        HashMap<String,String> hashMap = new HashMap();
        //怎么确定元素存放的位置？？
        //key的hash值  除以数组当前的长度取余数
        //假设长度是16  取余之后，值一定在0----15之间  一定不会出现数组下标越界
        hashMap.put("name", "汪云飞");
        hashMap.put("name", "飞飞");
        System.out.println(hashMap.get("name"));
        //HashMap 630行 ：(p = tab[i = (n - 1) & hash])就相当于 key的hash值  除以数组当前的长度取余数以确定存放位置
        //公式不是万能的 容量必须是2的n次方
        System.out.println("(16-1)&1234:   "+((16-1)&1234));
        System.out.println("1234%16:  "+(1234%16));

    }
}
